使用ctrl + c停止python

您所在的位置:网站首页 python 停止程序运行 使用ctrl + c停止python

使用ctrl + c停止python

2023-10-01 17:49| 来源: 网络整理| 查看: 265

Ctrl+ DWindows和Linux的区别

事实证明,像Python 3.6,Python的口译手柄Ctrl+ C不同的Linux和Windows。对于Linux,Ctrl+ C会的工作主要预期但是在Windows Ctrl+ C 大多没有特别的工作,如果Python是运行阻塞调用,如thread.join或等待网页响应。它确实适用于time.sleep。这是Python解释器中发生的事情的很好的解释。注意Ctrl+ C生成SIGINT。

解决方案1:使用Ctrl+ Break或等效项

在终端/控制台窗口中使用下面的键盘快捷键,这些快捷键将SIGBREAK在OS的较低级别生成并终止Python解释器。

Mac OS和Linux

Ctrl+ Shift+ \或Ctrl+\

Windows:

一般:Ctrl+Break 戴尔:Ctrl+ Fn+ F6或Ctrl+ Fn+S 联想:Ctrl+ Fn+ F11或Ctrl+ Fn+B HP:Ctrl+ Fn+Shift 三星:Fn+Esc

解决方案2:使用Windows API

以下是一些方便的功能,这些功能将检测Windows并在控制台中为Ctrl+ 安装自定义处理程序C:

#win_ctrl_c.py import sys def handler(a,b=None): sys.exit(1) def install_handler(): if sys.platform == "win32": import win32api win32api.SetConsoleCtrlHandler(handler, True)

您可以像上面这样使用:

import threading import time import win_ctrl_c # do something that will block def work(): time.sleep(10000) t = threading.Thread(target=work) t.daemon = True t.start() #install handler install_handler() # now block t.join() #Ctrl+C works now!

解决方案3:轮询方法

我不喜欢或不推荐这种方法,因为它不必要地消耗了处理器并降低了对性能的影响。

导入线程导入时间

def work(): time.sleep(10000) t = threading.Thread(target=work) t.daemon = True t.start() while(True): t.join(0.1) #100ms ~ typical human response # you will get KeyboardIntrupt exception


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3